package org.birrap.ejb;

import java.util.List;
import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.NoResultException;
import javax.persistence.PersistenceContext;
import javax.persistence.Query;
import org.birrap.entities.UsuariosT;


@Stateless
public class UsuariosTBean implements UsuariosTBeanLocal {
    
    @PersistenceContext(unitName = "BirrApp-ejbPU")
    private EntityManager em;

    @Override
    public List<UsuariosT> findAll() {
    Query query = em.createNamedQuery("UsuariosT.findAll");
        
        return (List<UsuariosT>) query.getResultList();
     }

    @Override
    public UsuariosT findByCorreo(String correo) {
        UsuariosT res = null;
        Query query = em.createNamedQuery("UsuariosT.findByCorreo").
                setParameter("correo", correo);
        
        try {
            res = (UsuariosT) query.getSingleResult();
        } catch(NoResultException e) {
            System.out.println("No existe el correo");
        }
        
        return res;
    }

    @Override
    public List<UsuariosT> findByNombre(String nombre) {
        List<UsuariosT> res = null;
        Query query = em.createNamedQuery("UsuariosT.findByCorreo").
                setParameter("nombre","%" + nombre+ "%");
        
        try {
            res = (List<UsuariosT>) query.getResultList();
        } catch(NoResultException e) {
            System.out.println("No existe el nombre");
        }
        
        return res;
    }

    @Override
    public List<UsuariosT> findByApellidos(String apellidos) {
        List<UsuariosT> res = null;
        Query query = em.createNamedQuery("UsuariosT.findByApellidos").
                setParameter("nombre","%" + apellidos+ "%");
        
        try {
            res = (List<UsuariosT>) query.getResultList();
        } catch(NoResultException e) {
            System.out.println("No existe el apellido");
        }
        
        return res;
    }

    @Override
    public UsuariosT findByCorreoAndPassword(String correo, String password) {
    UsuariosT res = null;
        Query query = em.createNamedQuery("UsuariosT.findByCorreoAndPassword").
                setParameter("correo", correo).
                setParameter("password", password);
        
        try {
            res = (UsuariosT) query.getSingleResult();
        } catch(NoResultException e) {
        }
        
        return res;
    }


    @Override
    public UsuariosT insert(UsuariosT usuario) {
        return update(usuario);
    }

    @Override
    public UsuariosT update(UsuariosT usuario) {
        return em.merge(usuario);
    }

    // Add business logic below. (Right-click in editor and choose
    // "Insert Code > Add Business Method")
    

}
